package ru.niir.goodfil.ui.components;

import javax.faces.convert.Converter;
import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.sql.Timestamp;
import java.math.BigDecimal;

/**
 * Конвертер для параметров товара: веса и объема. Число с фиксированной точкой: два знака после запятой.
 * Разделитель - точка
 */
public class VolumeConverter implements Converter
{
    public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String s)
    {
        float f = Float.parseFloat(s);
        BigDecimal bd = new BigDecimal(f);
        bd = bd.setScale(6, BigDecimal.ROUND_HALF_UP);
        return bd.floatValue();
    }

    public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object o)
    {
        if (o instanceof BigDecimal) {
            BigDecimal bd = (BigDecimal) o;
            bd = bd.setScale(6, BigDecimal.ROUND_HALF_UP);
            return bd.toPlainString();
        } else if (o instanceof Float) {
            BigDecimal bd = new BigDecimal((Float) o);
            bd = bd.setScale(6, BigDecimal.ROUND_HALF_UP);
            return bd.toPlainString();
        } else {
            return String.valueOf(o);
        }
    }

    public static void main(String[] args)
    {
        VolumeConverter volumeConverter = new VolumeConverter();
        System.out.println(volumeConverter.getAsString(null, null, new Float("0.000925")));
    }
}